有了 Web 框架後現在要通過 Python 調用 PowerShell 命令,通過以下指令
powershell -Help
其中可以通過 -Command 參數可以指定執行 PowerShell 命令且可以攜帶參數
powershell -Command Get-ComputerInfo
可以看到成功執行獲取到當前設備的基本資訊,但有紅色訊息需要查看當前的 Execution Policies
Get-ExecutionPolicy -List
將 ExecutionPolicy 修改為 RemoteSigned 即可執行本機命令但從網路下載的命令將會受到限制
Set-ExecutionPolicy RemoteSigned
查看當前的 Execution Policies 是否已經修改
再重新執行命令可以發現紅色訊息已經不見
最後將此命令通過 Python 進行執行,引入 subprocess 模塊
import subprocess
程式進入點
if __name__ == '__main__':
宣告要執行的命令這裡為輸出 Hello Wolrd! 訊息
command = "powershell -Command Get-ComputerInfo"
執行命令並返回執行狀態
ret = subprocess.run(command)
輸出執行結果,0 代表已經執行完畢,若為負值則表示命令中斷
if ret.returncode < 0:
print("error:",ret)
else:
print("success:",ret)
完整程式碼如下
import subprocess
if __name__ == '__main__':
command = "powershell -Command Write-Host 'Hello Wolrd!'"
ret = subprocess.run(command,shell=True,stdout=subprocess.PIPE,stderr=subprocess.PIPE,encoding="utf-8")
if ret.returncode < 0:
print("error:",ret)
else:
print("success:",ret)
執行
python ps.py
輸出結果
success: CompletedProcess(args="powershell -Command Write-Host 'Hello Wolrd!'", returncode=0, stdout='Hello Wolrd!\n', stderr='')
參考資源
Executing PowerShell from Python